package com.pww.movie.utils;

import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;

import java.util.Base64;
import java.io.ByteArrayInputStream;
import java.io.IOException;

public class Base64ToMultipart {
    /**
     * 将 Base64 字符串转换为 MultipartFile
     * @param base64Str 带或不带前缀的 Base64 字符串
     * @param fileName 文件名（如 test.jpg）
     * @return MultipartFile 对象
     */
    public static MultipartFile base64ToMultipart(String base64Str, String fileName) throws IOException {
        // 去掉前缀（如 data:image/png;base64,）
        if (base64Str.contains(",")) {
            base64Str = base64Str.substring(base64Str.indexOf(",") + 1);
        }

        // 解码成字节
        byte[] data = Base64.getDecoder().decode(base64Str);

        // 构造 MultipartFile（第三个参数是 contentType）
        return new MockMultipartFile("file", fileName, "image/jpeg", new ByteArrayInputStream(data));
    }
}
